#ifndef __GALLERY_H__
#define __GALLERY_H__

#include <dirent.h>
#include <sys/stat.h>

// 相册配置 (GEC6818: 800x480)
#define GALLERY_DIR "./photos" // 照片存储目录
#define THUMBNAIL_WIDTH 180    // 缩略图宽度
#define THUMBNAIL_HEIGHT 140   // 缩略图高度 (保持4:3比例)
#define THUMBNAIL_SPACING 10   // 缩略图间距
#define GALLERY_COLS 4         // 每行显示4张图片
#define GALLERY_ROWS 3         // 每页显示3行
#define MAX_PHOTOS 100         // 最多支持100张照片

// 照片信息结构
typedef struct
{
  char filename[256]; // 文件名
  time_t timestamp;   // 时间戳
} photo_info_t;

/**
 * @brief 初始化相册目录
 */
int gallery_init();

/**
 * @brief 保存截屏到相册
 * @param yuyv_data YUYV格式图像数据
 * @param width 图像宽度
 * @param height 图像高度
 * @return 成功返回0，失败返回-1
 */
int gallery_save_photo(unsigned char *yuyv_data, int width, int height);

/**
 * @brief 显示相册界面
 * @return 成功返回0，失败返回-1
 */
int gallery_show();

/**
 * @brief 扫描相册目录获取照片列表
 * @param photos 照片信息数组
 * @param max_count 最大照片数量
 * @return 实际照片数量
 */
int gallery_scan_photos(photo_info_t *photos, int max_count);

/**
 * @brief 全屏显示照片
 * @param photo_path 照片路径
 */
int gallery_show_fullscreen(const char *photo_path);

#endif // __GALLERY_H__
